--- author: shenh10 categories: - uncategorized comments: true date: '2022-00-30' description: 30 nvidia h100 tensor core gpu architecture - 研究论文解读与笔记 layout: post mathjax: true tags: - gpu-acceleration title: 30 nvidia h100 tensor core gpu architecture ---

NVIDIA H100 Tensor Core GPU Architecture

A1 主要贡献

本文档介绍了NVIDIA H100 Tensor Core GPU,这是NVIDIA基于Hopper GPU架构的新一代数据中心GPU。

核心问题: 人工智能(AI)、高性能计算(HPC)和数据分析的复杂性呈指数级增长,对计算平台提出了更高的要求。现有计算能力难以满足万亿参数级AI模型、大规模科学模拟(如气候预测)和复杂数据分析的需求,训练时间可能长达数月,阻碍了业务创新和科学发现。

研究目标: 推出一款能够为大规模AI和HPC提供数量级性能飞跃的加速计算平台。具体而言,H100旨在安全地加速从小型企业工作负载到百亿亿次级(Exascale)HPC和万亿参数AI模型的各种工作负载,显著缩短训练时间,并为下一代应用(如NVIDIA Omniverse™驱动的元宇宙和数字孪生)提供所需的巨大计算能力。

主要创新点:
1. Hopper GPU架构: H100基于全新的Hopper架构,采用为NVIDIA定制的TSMC 4N工艺制造,集成了800亿个晶体管,是世界上最先进的芯片之一。
2. 第四代Tensor Core与Transformer引擎: 引入了专为Transformer模型加速设计的Transformer引擎,结合支持FP8精度的第四代Tensor Core,可实现高达9倍的AI训练速度提升和30倍的AI推理速度提升。
3. 计算性能飞跃: 与上一代A100相比,主流AI和HPC模型的性能提升高达30倍。新的DPX指令集可将动态规划算法(如基因组学中的Smith-Waterman算法)加速高达7倍。
4. 互联技术创新: 引入第四代NVLink(900 GB/s)和新的NVLink Switch System,能够连接多达256个GPU,解决了大规模模型并行化中的通信瓶颈。
5. 机密计算(Confidential Computing): H100是全球首款原生支持机密计算的GPU,可在数据使用中保护其机密性和完整性,将CPU的可信执行环境(TEE)扩展到GPU。
6. 异步执行增强: 通过新的Tensor Memory Accelerator (TMA)和异步事务屏障(Asynchronous Transaction Barrier),实现了端到端的异步流水线,将数据移动与计算完全重叠,提升GPU利用率。
7. 新的编程模型层次: 引入线程块集群(Thread Block Cluster)概念,扩展了CUDA编程模型,允许在多个SM上进行高效的线程协作和数据共享。


图1. 现代云计算中的多样化工作负载需要NVIDIA GPU加速。

A3 背景知识/关键Observation/设计原则

NVIDIA H100 Tensor Core GPU概述

Hopper架构的目标。人工智能(AI)、高性能计算(HPC)和数据分析的复杂性正在呈指数级增长,要求科学家和工程师使用最先进的计算平台。NVIDIA Hopper GPU架构安全地提供最高性能的计算和低延迟,并集成了数据中心规模计算的全栈能力。

H100的性能飞跃。由NVIDIA Hopper GPU架构驱动的NVIDIA® H100 Tensor Core GPU,为NVIDIA的数据中心平台带来了下一次巨大的加速计算性能飞跃。H100安全地加速从小型企业工作负载到百亿亿次级HPC和万亿参数AI模型的各种工作负载。

先进的芯片制造工艺。H100采用为NVIDIA定制的TSMC 4N工艺制造,拥有800亿个晶体管,并包含众多架构进步,是世界上有史以来最先进的芯片。


图2. 新SXM5模块上的NVIDIA H100 GPU。

设计重点与性能提升。H100是NVIDIA的第九代数据中心GPU,旨在为大规模AI和HPC提供相较于上一代NVIDIA A100 Tensor Core GPU数量级的性能飞跃。H100继承了A100的主要设计重点,即改善AI和HPC工作负载的强扩展性,并在架构效率上取得了实质性改进。

与A100的性能对比。对于当今主流的AI和HPC模型,配备InfiniBand互连的H100提供的性能高达A100的30倍(参见图3)。


所有性能数据均为基于当前预期的初步数据,并可能在最终产品中发生变化。A100集群:HDR IB网络。H100集群:NDR IB网络,在指定情况下使用NVLink Switch System。
图注:# GPUs: Climate Modeling 1K, LQCD 1K, Genomics 8, 3D-FFT 256, MT-NLG 32 (batch sizes: 4 for A100, 60 for H100 at 1 sec, 8 for A100 and 64 for H100 at 1.5 and 2sec),MRCNN 8 (batch 32),GPT-3 16B 512 (batch 256), DLRM 128 (batch 64K), GPT-3 16K (batch 512), MoE 8K (batch 512, one expert per GPU)
图3. H100助力下一代AI和HPC实现突破。

NVLink Switch System带来的额外性能飞跃。针对一些需要跨多个GPU加速节点进行模型并行以适应的最大、最具挑战性的计算工作负载,新的NVLink Switch System互连技术为其带来了又一次代际性能飞跃,在某些情况下,性能比使用InfiniBand的H100再次提升了三倍。

Grace Hopper Superchip。在GTC 2022春季大会上,发布了新的NVIDIA Grace Hopper Superchip产品。Hopper H100 Tensor Core GPU将为NVIDIA Grace Hopper Superchip CPU+GPU架构提供动力,该架构专为TB级加速计算而设计,为大模型AI和HPC提供10倍的性能提升。

Grace Hopper Superchip架构细节。NVIDIA Grace CPU利用Arm®架构的灵活性,创建了一个从头开始为加速计算设计的CPU和服务器架构。H100通过NVIDIA的超快速芯片到芯片互连与Grace配对,提供900GB/s的带宽,比PCIe Gen5快7倍。这种创新设计将提供比当今最快的服务器高出30倍的聚合带宽,并为运行TB级数据的应用提供高达10倍的性能。


图4. Grace Hopper Superchip。

NVIDIA H100 GPU关键特性总结


图5. Hopper H100中的新技术。

A2 方法细节

NVIDIA H100 GPU架构深度解析

NVIDIA H100 GPU基于新的Hopper GPU架构,具有多项创新:
* 新的第四代Tensor Cores在更广泛的AI和HPC任务上,比以往任何时候都更快地执行矩阵计算。
* 新的Transformer引擎使H100在大型语言模型上,与上一代A100相比,AI训练速度提升高达9倍,AI推理速度提升高达30倍。
* 新的NVLink Network互连技术实现了跨多个计算节点多达256个GPU之间的GPU到GPU通信。
* 安全的MIG将GPU划分为隔离的、大小合适的实例,以最大化小型工作负载的服务质量(QoS)。

H100的异步特性。NVIDIA的H100是第一款真正意义上的异步GPU。H100将A100的全局到共享内存的异步传输扩展到所有地址空间,并增加了对张量内存访问模式的支持。它使应用程序能够构建端到端的异步流水线,将数据移入和移出芯片,完全用计算重叠并隐藏数据移动。

Tensor Memory Accelerator (TMA)的角色。现在只需要少量CUDA线程即可使用新的Tensor Memory Accelerator管理H100的全部内存带宽,而大多数其他CUDA线程可以专注于通用计算,例如为新一代Tensor Cores进行数据预处理和后处理。

线程块集群(Thread Block Cluster)。H100通过一个名为线程块集群的新级别扩展了CUDA线程组层次结构。集群是一组保证被并发调度的线程块,能够在多个SM之间实现线程的高效协作和数据共享。集群还能更有效地协同驱动异步单元,如Tensor Memory Accelerator和Tensor Cores。

新的同步机制。协调日益增多的片上加速器和多样化的通用线程组需要同步。例如,消耗输出的线程和加速器必须等待产生它们的线程和加速器。NVIDIA的异步事务屏障(Asynchronous Transaction Barrier)使集群内的通用CUDA线程和片上加速器能够高效同步,即使它们位于不同的SM上。所有这些新功能使用户和应用程序都能在任何时候充分利用其H100 GPU的所有单元,使H100成为迄今为止最强大、最可编程、功耗效率最高的GPU。

GH100芯片的物理规格。驱动H100 GPU的完整GH100 GPU采用为NVIDIA定制的TSMC 4N工艺制造,拥有800亿个晶体管,芯片尺寸为814 mm²,并具有更高的频率设计。NVIDIA GH100 GPU由多个GPU处理集群(GPC)、纹理处理集群(TPC)、流式多处理器(SM)、L2缓存和HBM3内存控制器组成。

GH100完整实现规格。GH100 GPU的完整实现包括以下单元:
* 8个GPC,72个TPC(每个GPC 9个TPC),每个TPC 2个SM,每个完整GPU 144个SM
* 每个SM 128个FP32 CUDA核心,每个完整GPU 18432个FP32 CUDA核心
* 每个SM 4个第四代Tensor Cores,每个完整GPU 576个
* 6个HBM3或HBM2e堆栈,12个512位内存控制器
* 60 MB L2缓存
* 第四代NVLink和PCIe Gen 5

H100 SXM5规格。采用SXM5板型的NVIDIA H100 GPU包括以下单元:
* 8个GPC,66个TPC,每个TPC 2个SM,每个GPU 132个SM
* 每个SM 128个FP32 CUDA核心,每个GPU 16896个FP32 CUDA核心
* 每个SM 4个第四代Tensor Cores,每个GPU 528个
* 80 GB HBM3,5个HBM3堆栈,10个512位内存控制器
* 50 MB L2缓存
* 第四代NVLink和PCIe Gen 5

H100 PCIe规格。采用PCIe Gen 5板型的NVIDIA H100 GPU包括以下单元:
* 7或8个GPC,57个TPC,每个TPC 2个SM,每个GPU 114个SM
* 每个SM 128个FP32 CUDA核心,每个GPU 14592个FP32 CUDA核心
* 每个SM 4个第四代Tensor Cores,每个GPU 456个
* 80 GB HBM2e,5个HBM2e堆栈,10个512位内存控制器
* 50 MB L2缓存
* 第四代NVLink和PCIe Gen 5

TSMC 4N工艺的优势。使用TSMC 4N制造工艺使H100能够提高GPU核心频率,改善每瓦性能,并比基于TSMC 7nm N7工艺的上一代GA100 GPU集成更多的GPC、TPC和SM。

GH100 GPU示意图。图6展示了具有144个SM的完整GH100 GPU。H100 SXM5 GPU有132个SM,而PCIe版本有114个SM。请注意,H100 GPU主要用于执行数据中心和边缘的AI、HPC和数据分析计算工作负载,而非图形处理。在SXM5和PCIe H100 GPU中,只有两个TPC具备图形处理能力(即可以运行顶点、几何和像素着色器)。


图6. 拥有144个SM的完整GH100 GPU。

H100 SM架构

H100 SM的性能提升。在NVIDIA A100 Tensor Core GPU SM架构的基础上,H100 SM由于引入了FP8,其每个SM的峰值浮点计算能力是A100的四倍,并且在所有先前的Tensor Core和FP32/FP64数据类型上,时钟对时钟的原始SM计算能力是A100的两倍。

Transformer引擎与DPX指令的贡献。新的Transformer引擎,结合Hopper的FP8 Tensor Cores,与上一代A100相比,在大型语言模型上提供了高达9倍的AI训练加速和30倍的AI推理加速。Hopper的新DPX指令使得用于基因组学和蛋白质测序的Smith-Waterman算法处理速度提升高达7倍。

综合性能提升。Hopper的新第四代Tensor Core、Tensor Memory Accelerator以及许多其他新的SM和通用H100架构改进,共同在许多其他情况下提供了高达3倍的HPC和AI性能。
表1. NVIDIA H100 Tensor Core GPU初步性能规格


1. H100的初步性能估计基于当前预期,并可能在最终产品中发生变化。
2. 使用Sparsity特性时的有效TFLOPS/TOPS。


图7. GH100流式多处理器(SM)。

H100 SM关键特性总结

H100 Tensor Core架构

Tensor Cores简介。Tensor Cores是用于矩阵乘法和累加(MMA)数学运算的专用高性能计算核心,为AI和HPC应用提供了突破性的性能。在单个NVIDIA GPU中,跨SM并行运行的Tensor Cores与标准的浮点(FP)、整数(INT)和融合乘加(FMA)操作相比,提供了巨大的吞吐量和效率提升。Tensor Cores首次在NVIDIA Tesla® V100 GPU中引入,并在每一代新的NVIDIA GPU架构中得到进一步增强。

第四代Tensor Core的性能。H100中的新第四代Tensor Core架构,与A100相比,在时钟对时钟的基础上,每个SM的原始密集和稀疏矩阵数学吞吐量翻倍,如果考虑到H100比A100更高的GPU Boost时钟,提升更大。支持FP8、FP16、BF16、TF32、FP64和INT8 MMA数据类型。新的Tensor Cores还具有更高效的数据管理,可节省高达30%的操作数传输功耗。


图8. H100 FP16 Tensor Core的吞吐量是A100 FP16 Tensor Core的3倍。

Hopper FP8数据格式

FP8 Tensor Cores的引入。H100 GPU增加了FP8 Tensor Cores以加速AI训练和推理。如图9所示,FP8 Tensor Cores支持FP32和FP16累加器,以及两种新的FP8输入类型:
* E4M3:4位指数,3位尾数,1位符号位。
* E5M2:5位指数,2位尾数,1位符号位。

FP8数据类型的特性。E4M3支持需要较小动态范围但更高精度的计算,而E5M2提供更宽的动态范围和较低的精度。与FP16或BF16相比,FP8将数据存储需求减半,吞吐量翻倍。

与Transformer引擎的结合。新的Transformer引擎(下文将介绍)利用FP8和FP16两种精度来减少内存使用并提高性能,同时仍能为大型语言模型和其他模型保持准确性。



图注:支持多种累加器和输出类型。将1位分配给范围或精度。

图9. 新的Hopper FP8精度 - 吞吐量是FP16/BF16的2倍,占用空间是其一半。
图10. H100 FP8 Tensor Core的吞吐量是A100 FP16 Tensor Core的6倍。

图11. H100的TF32、FP64和INT8 Tensor Cores的吞吐量都是A100的3倍。

下表2详细说明了H100相对于A100在多种数据类型上的数学运算加速比。
表2. H100相对于A100的加速比(初步H100性能,TC=Tensor Core)


1 - H100的初步性能估计基于当前预期,并可能在最终产品中发生变化。

用于加速动态规划的新DPX指令

动态规划简介。许多“暴力”优化算法具有一个特性,即在解决较大问题时会多次重用子问题的解。动态规划(Dynamic Programming)是一种算法技术,通过将复杂递归问题分解为更简单的子问题来解决。通过存储子问题的结果,无需在以后需要时重新计算,动态规划算法将指数级问题的计算复杂性降低到线性规模。

DP的应用领域。动态规划通常用于广泛的优化、数据处理和基因组学算法中。在快速增长的基因组测序领域,Smith-Waterman动态规划算法是使用的最重要方法之一。在机器人领域,Floyd-Warshall是用于实时为机器人车队在动态仓库环境中寻找最优路径的关键算法。

H100的DPX指令。H100引入了DPX指令,与Ampere GPU相比,可将动态规划算法的性能加速高达7倍。这些新指令为许多DP算法的内循环提供了对高级融合操作数的支持。这将大大缩短疾病诊断、物流路径优化甚至图分析等问题的求解时间。


图注(左):动态规划:将指数时间问题求解转为多项式时间。

图注(中):广泛的应用场景,从基因组学到路径优化。

图注(右):实时性能,40倍加速。
图12. DPX指令加速动态规划。

L1数据缓存和共享内存的结合

组合架构的优势。NVIDIA从Volta V100开始引入的组合L1数据缓存和共享内存子系统架构,显著提高了性能,同时简化了编程,并减少了为达到或接近峰值应用性能所需的调优工作。将数据缓存和共享内存功能合并到单个内存块中,为两种类型的内存访问提供了最佳的整体性能。H100中L1数据缓存和共享内存的组合容量为256 KB/SM,而A100为192 KB/SM。在H100中,SM共享内存本身的大小可配置高达228 KB。

H100计算性能总结

整体性能提升。总体而言,考虑到H100中所有新的计算技术进步,H100提供了比A100大约6倍的计算性能提升。图13以级联的方式总结了H100的改进,从其132个SM开始,比A100的108个SM增加了22%的SM数量。每个H100 SM由于其新的第四代Tensor Core而快2倍。在每个Tensor Core内部,新的FP8格式和相关的Transformer引擎又提供了2倍的改进。最后,H100中增加的时钟频率又带来了大约1.3倍的性能提升。总的来说,这些改进使H100的峰值计算吞吐量大约是A100的6倍,这是对全球最需要计算能力的工作负载的一次重大飞跃。


图注:H100为全球最需要计算能力的工作负载提供了6倍的吞吐量。
图13. H100计算改进总结。

H100 GPU层次结构和异步性改进

性能关键因素。在并行程序中实现高性能的两个基本关键是数据局部性和异步执行。通过将程序数据尽可能靠近执行单元,程序员可以利用本地数据访问的低延迟和高带宽带来的性能。异步执行涉及寻找独立任务以与内存传输和其他处理重叠。目标是保持GPU中所有单元的充分利用。我们将探讨Hopper中增加到GPU编程层次结构的一个重要新层次,它暴露了比单个SM上的单个线程块更大规模的局部性。我们还将描述新的异步执行功能,这些功能提高了性能并减少了同步开销。

线程块集群(Thread Block Clusters)

CUDA编程模型的演进。CUDA编程模型长期依赖于一种使用包含多个线程块的网格(Grid)来利用程序局部性的GPU计算架构。一个线程块包含多个在单个SM上并发运行的线程,这些线程可以通过快速屏障进行同步,并使用SM的共享内存交换数据。然而,随着GPU的SM数量增长到100个以上,计算程序变得更加复杂,线程块作为编程模型中表示局部性的唯一单元已不足以最大化执行效率。

H100的线程块集群架构。H100引入了一种新的线程块集群(Thread Block Cluster)架构,它以比单个SM上的单个线程块更大的粒度暴露了对局部性的控制。线程块集群扩展了CUDA编程模型,并在GPU的物理编程层次结构中增加了一个新级别,现在包括线程、线程块、线程块集群和网格。集群是一组保证被并发调度到一组SM上的线程块,其目标是实现跨多个SM的线程高效协作。

集群的硬件支持与实现。H100中的集群在GPC内的SM上并发运行。GPC是硬件层次结构中的一组SM,它们在物理上总是紧密相邻。集群具有硬件加速的屏障和新的内存访问协作能力,这些将在以下部分讨论。GPC中SM的专用SM-to-SM网络为集群中的线程提供了快速的数据共享。在CUDA中,网格中的线程块可以在内核启动时可选地分组为集群,如图14所示,并且可以从CUDA cooperative_groups API中利用集群功能。


图14. 线程块集群和带有集群的网格。
图注:一个网格由线程块组成,如A100中的传统CUDA编程模型(左半部分)。Hopper架构增加了一个可选的集群层次结构(右半部分)。

分布式共享内存(Distributed Shared Memory)

DSMEM的功能。通过集群,所有线程都可以通过加载、存储和原子操作直接访问其他SM的共享内存。此功能称为分布式共享内存(DSMEM),因为共享内存的虚拟地址空间在逻辑上分布在集群中的所有块上。DSMEM实现了SM之间更高效的数据交换,数据不再需要写入全局内存再读出以进行传递。集群的专用SM-to-SM网络确保了对远程DSMEM的快速、低延迟访问。与使用全局内存相比,DSMEM将线程块之间的数据交换速度加快了约7倍。


图15. 线程块到线程块的数据交换(A100 vs H100集群)。

DSMEM的CUDA实现。在CUDA层面,来自集群中所有线程块的所有DSMEM段都被映射到每个线程的通用地址空间中,这样所有DSMEM都可以通过简单的指针直接引用。CUDA用户可以利用cooperative_groups API构建指向集群中任何线程块的通用指针。DSMEM传输也可以表示为异步拷贝操作,通过基于共享内存的屏障进行同步以跟踪完成情况。

集群的性能优势。下图16显示了在不同算法上使用集群的性能优势。集群通过允许程序员直接控制比单个SM更大的GPU部分来提高性能。集群允许与更多线程进行协作执行,并可以访问比单个线程块更大的共享内存池。


图16. 集群与非集群性能比较。
图注:基于当前预期的H100初步性能估计,可能会在最终产品中发生变化。

异步执行

异步执行的演进。每一代新的NVIDIA GPU都包含众多架构增强功能,以提高性能、可编程性、能效、GPU利用率和许多其他因素。近几代NVIDIA GPU都包含了异步执行能力,以允许更多的数据移动、计算和同步重叠。Hopper架构提供了新功能,可改善异步执行,并允许内存拷贝与计算和其他独立工作进一步重叠,同时最小化同步点。下面将描述一个名为Tensor Memory Accelerator(TMA)的新异步内存拷贝单元和一个新的异步事务屏障。


图17. Hopper中的异步执行并发性和增强功能。

图注:数据移动、计算和同步的程序化重叠。异步并发和最小化同步点是性能的关键。

Tensor Memory Accelerator (TMA)

TMA的目的与机制。为了帮助供给强大的新型H100 Tensor Cores,数据获取效率通过一种名为Tensor Memory Accelerator (TMA)的新单元得到提升,该单元可以从全局内存向共享内存以及反向高效传输大数据块和多维张量。TMA操作通过一个拷贝描述符启动,该描述符使用张量维度和块坐标而不是逐元素寻址来指定数据传输(见下图18)。可以指定大数据块(最大可达共享内存容量)并从全局内存加载到共享内存,或从共享内存存储回全局内存。TMA通过支持不同的张量布局(1D-5D张量)、不同的内存访问模式、归约和其他功能,显著减少了寻址开销并提高了效率。


图18. 通过拷贝描述符进行TMA地址生成。

TMA的编程模型。TMA操作是异步的,并利用了A100中引入的基于共享内存的异步屏障。此外,TMA编程模型是单线程的,即一个warp中的单个线程被选出以发出一个异步TMA操作(cuda::memcpy_async)来拷贝一个张量,随后多个线程可以在一个cuda::barrier上等待数据传输完成。为了进一步提高性能,H100 SM增加了硬件来加速这些异步屏障等待操作。

TMA相比A100的优势。TMA的一个关键优势是它解放了线程去执行其他独立工作。在A100上,如图19左侧所示,异步内存拷贝是使用一个特殊的LoadGlobalStoreShared指令执行的,因此线程负责生成所有地址并在整个拷贝区域上循环。在Hopper上,TMA负责一切。单个线程在启动TMA之前创建一个拷贝描述符,此后地址生成和数据移动都由硬件处理。TMA提供了一个更简单的编程模型,因为它接管了在拷贝张量段时计算步幅、偏移和边界计算的任务。


图19. H100上的TMA异步内存拷贝 vs A100上的LDGSTS。

异步事务屏障(Asynchronous Transaction Barrier)

A100异步屏障回顾。异步屏障最初是在Ampere GPU架构中引入的。参见图20的左侧部分。考虑一个例子,一组线程正在生产它们都将在一个屏障后消费的数据。异步屏障将同步过程分为两步。首先,当线程完成生产其共享数据部分时,它们会发出“到达”(Arrive)信号。这个“到达”是非阻塞的,因此线程可以自由执行其他独立工作。最终,线程需要所有其他线程生产的数据。此时,它们会执行一个“等待”(Wait),这将阻塞它们,直到每个线程都发出了“到达”信号。异步屏障的优势在于它们允许提早到达的线程在等待时执行独立工作。这种重叠是额外性能的来源。如果所有线程都有足够的独立工作,屏障实际上变得“免费”,因为等待指令可以立即完成,因为所有线程都已经到达。

Hopper的增强与新屏障类型。Hopper的新特性是“等待中”的线程可以休眠直到所有其他线程到达。在之前的芯片上,等待中的线程会在共享内存中的屏障对象上自旋。虽然异步屏障仍然是Hopper编程模型的一部分,但Hopper增加了一种新的屏障形式,称为异步事务屏障。异步事务屏障与异步屏障非常相似,见图20的右侧部分。它也是一个分离式屏障,但除了计算线程到达数量外,它还计算事务。Hopper包含一个用于写入共享内存的新命令,该命令同时传递要写入的数据和一个事务计数。事务计数本质上是一个字节计数。异步事务屏障将在等待命令处阻塞线程,直到所有生产者线程都执行了到达操作,并且所有事务计数的总和达到一个期望值。

异步事务屏障的强大功能。异步事务屏障是用于异步内存拷贝或数据交换的强大新原语。如前所述,集群可以进行线程块到线程块的通信以进行数据交换,并带有隐含的同步,而该集群能力就是建立在异步事务屏障之上的。


图20. A100中的异步屏障 vs H100中的异步事务屏障。

H100 HBM和L2缓存内存架构

内存架构的重要性。GPU内存架构和层次结构的设计对应用性能至关重要,并影响GPU的大小、成本、功耗和可编程性。GPU中存在许多不同的内存子系统,从大量的片外DRAM(帧缓冲)设备内存,到不同级别和类型的片上内存,再到SM中用于计算的寄存器文件。

H100的DRAM技术。高性能的HBM3和HBM2e分别是H100 SXM5和PCIe H100 GPU中使用的DRAM技术。HBM内存由与GPU位于同一物理封装上的内存堆栈组成,与传统的GDDR5/6内存设计相比,可节省大量功耗和面积,从而允许在系统中安装更多GPU。

CUDA内存空间。CUDA程序访问的全局和局部内存区域位于HBM内存空间中,在CUDA术语中称为“设备内存”。常量内存空间位于设备内存中,并缓存在常量缓存中。纹理和表面内存空间位于设备内存中,并缓存在纹理缓存中。二级(L2)缓存缓存对HBM(设备)内存的读写,并为GPU内各子系统的内存请求提供服务。HBM和L2内存空间对所有SM和GPU上运行的所有应用程序都是可访问的。

H100 HBM3和HBM2e DRAM子系统

内存需求的增长与H100的解决方案。随着HPC、AI和数据分析数据集的规模持续增长,以及计算问题变得日益复杂,更大的GPU内存容量和带宽成为必需。NVIDIA P100是全球首个支持高带宽HBM2内存技术的GPU架构,而NVIDIA V100提供了更快、更高效、容量更大的HBM2实现。NVIDIA A100 GPU进一步提升了HBM2的性能和容量。H100 SXM5 GPU通过支持80 GB(五个堆栈)的快速HBM3内存,将标准大大提高,提供了超过3 TB/秒的内存带宽,这实际上是两年前发布的A100内存带宽的2倍。PCIe H100提供80 GB的快速HBM2e,内存带宽超过2 TB/秒。


图21. 全球首款HBM3 GPU内存架构,提供2倍的实际带宽。
图注:内存数据速率尚未最终确定,并可能在最终产品中发生变化。

H100 L2缓存

L2缓存的规模与功能。H100中的50 MB L2缓存比A100的40 MB L2大1.25倍。它能够缓存更大比例的模型和数据集以供重复访问,减少了对HBM3或HBM2e DRAM的访问次数,从而提高了性能。通过使用分区交叉开关结构,L2缓存为直接连接到该分区的GPC中的SM的内存访问进行数据本地化和缓存。L2缓存驻留控制优化了容量利用率,允许程序员选择性地管理应保留在缓存中或被驱逐的数据。HBM3或HBM2e DRAM和L2缓存子系统都支持数据压缩和解压缩技术,以优化内存和缓存的使用及性能。

内存子系统RAS特性

H100的HBM3和HBM2e内存子系统实现了以下两个主要的RAS(可靠性、可用性和可服务性)特性。

ECC内存弹性

ECC保护。H100 HBM3/2e内存子系统支持单比特纠错、双比特检测(SECDED)纠错码(ECC)来保护数据。ECC为对数据损坏敏感的计算应用提供了更高的可靠性。这在GPU处理非常大的数据集和/或长时间运行应用程序的大规模集群计算环境中尤其重要。H100为其HBM3/2e内存支持“Sideband ECC”,即使用一个与主HBM内存分离的小内存区域来存放ECC位(这与“Inline ECC”形成对比,后者会从主内存中划出一部分来存储ECC位)。H100中的其他关键内存结构,包括L2缓存以及所有SM内的L1缓存和寄存器文件,也受到SECDED ECC的保护。

内存行重映射

行重映射功能。H100 HBM3/HBM2e子系统可以使生成了ECC错误的内存单元所在的内存行失效,并在启动时使用行重映射逻辑将这些行替换为预留的已知良好行。每个HBM3/HBM2e内存库中都预留了一些内存行作为备用行,如果需要替换被确定为坏的行,则可以激活这些备用行。
表3. NVIDIA A100和H1001数据中心GPU的比较



1. H100的初步规格基于当前预期,可能会在最终产品中发生变化。
2. 使用Sparsity特性时的有效TOPS/TFLOPS。
3. 对于NVIDIA数据中心GPU,GPU峰值时钟和GPU Boost时钟是同义词。

注意:由于H100和A100 Tensor Core GPU设计用于安装在高性能服务器和数据中心机架中,以驱动AI和HPC计算工作负载,它们不包括显示连接器、用于光线追踪加速的NVIDIA RT Cores或NVENC编码器。

计算能力

H100 GPU支持新的计算能力9.0。表4比较了NVIDIA GPU架构不同计算能力的参数。
表4. 计算能力:V100 vs A100 vs H100

第二代安全MIG

MIG技术回顾。NVIDIA多实例GPU(MIG)技术是在基于NVIDIA Ampere架构的A100 Tensor Core GPU中引入的。MIG通过为共享同一GPU的多个用户提供独立、完全隔离和安全的GPU实例,已成为扩展云服务提供商(CSP)数据中心的一项极其重要的功能。MIG技术允许将每个A100或H100 GPU(包括H100 SXM5和H100 PCIe版本)划分为多达七个GPU实例,以实现最佳的GPU利用率,并为不同客户端(如虚拟机、容器和进程)提供定义的服务质量(QoS)和隔离。MIG对具有多租户用例的云服务提供商尤其有益,它确保一个客户端不会影响其他客户端的工作或调度,此外还提供增强的安全性,并允许为客户提供GPU利用率保证。


图22. 示例CSP MIG配置。
图注:此CSP MIG图显示了来自相同或不同组织的多个独立用户如何可以在单个物理GPU内被分配各自专用、受保护和隔离的GPU实例。

MIG的重要特性。管理、调优、服务和负载均衡vGPU(虚拟GPU)虚拟机(VM)配置的一个重要MIG特性是能够在单个GPU上的GPU实例之间迁移vGPU,以及更频繁地在集群中的不同GPU之间迁移。每个GPU实例在整个内存系统中都有独立和隔离的路径——片上交叉开关端口、L2缓存库、内存控制器和DRAM地址总线都唯一地分配给单个实例。这确保了单个用户的工作负载可以以可预测的吞吐量和延迟运行,拥有相同的L2缓存分配和DRAM带宽,即使其他任务正在耗尽其自身的缓存或使其DRAM接口饱和。

H100 MIG增强功能

第二代MIG的提升。H100中新的第二代MIG技术与A100相比,每个GPU实例提供的计算能力约增加3倍,内存带宽增加近2倍。NVIDIA Hopper架构通过提供完全安全的、云原生的多租户、多用户MIG配置来增强MIG技术。通过硬件和虚拟机管理程序级别的新机密计算功能,最多可以将七个GPU实例安全地相互隔离(有关机密计算的更多详细信息,请参见下文的“安全增强和机密计算”部分)。

安全MIG配置示例。图23展示了一个CPU和GPU协同为共享单个GPU的多个用户提供多个可信执行环境(TEE)的示例系统配置。CPU端提供多个带有安全NVIDIA驱动程序的机密VM。此示例中的H100 GPU被划分为四个安全MIG实例。加密传输在CPU和GPU之间进行。GPU硬件虚拟化使用PCIe SR-IOV(每个MIG实例一个虚拟功能(VF))提供。机密性和数据完整性由多个基于硬件的安全功能提供,硬件防火墙在GPU实例之间提供内存隔离。


图23. 多租户单GPU配置中的安全MIG示例。

MIG实例的专用资源。Hopper架构现在还允许每个GPU实例拥有专用的图像和视频解码器,以便在共享基础设施上提供安全、高吞吐量的智能视频分析(IVA)。每个MIG GPU实例可以至少获得一个NVDEC和NVJPG单元。此外,H100 MIG实例现在包含自己的一套性能监视器,可与NVIDIA开发者工具配合使用。借助Hopper的并发分析功能,管理员可以监控适当规模的GPU加速,并在用户之间无缝地优化分配资源。

Transformer引擎

Transformer模型的挑战。Transformer模型是当今广泛使用的语言模型(从BERT到GPT-3)的支柱,需要巨大的计算资源。最初为自然语言处理(NLP)开发的Transformer正日益应用于计算机视觉、药物发现等不同领域。它们的规模继续呈指数级增长,现在达到数万亿个参数,导致其训练时间延长至数月,这由于巨大的计算需求而对业务需求不切实际。例如,Megatron Turing NLG (MT-NLG)需要2048个NVIDIA A100 GPU运行八周才能完成训练。总体而言,在过去五年中,transformer模型的增长速度远快于大多数其他AI模型,每两年增长275倍(见图24)。


图24. Transformer模型规模随不同用例呈指数增长。

H100的Transformer引擎。H100包含一个新的Transformer引擎,这是一种定制的Hopper Tensor Core技术,可显著加速Transformer的AI计算。


图25. Transformer引擎概念操作。

混合精度操作机制。混合精度的目标是智能地管理精度以保持准确性,同时仍能获得更小、更快数值格式的性能。在Transformer模型的每一层,Transformer引擎都会分析Tensor Core产生的输出值的统计数据。根据对下一层神经网络类型及其所需精度的了解,Transformer引擎还决定在将张量存储到内存之前将其转换为哪种目标格式。FP8的范围比其他数值格式更有限。为了最佳地利用可用范围,Transformer引擎还使用从张量统计数据计算出的缩放因子,动态地将张量数据缩放到可表示的范围内。因此,每一层都以其所需的确切范围运行,并以最佳方式加速。

大规模互联的需求。新兴的百亿亿次级HPC和万亿参数AI模型,用于像超人对话AI这样的任务,即使在超级计算机上也需要数月时间来训练。将这漫长的训练时间从数月压缩到数天,以便对企业更有用,需要在服务器集群中的每个GPU之间进行高速、无缝的通信。PCIe的带宽有限,造成了瓶颈。为了构建最强大的端到端计算平台,需要一个更快、更具扩展性的NVLink互连。

第四代NVLink的特性。NVLink是NVIDIA的高带宽、高能效、低延迟、无损的GPU到GPU互连技术,包括链路级错误检测和数据包重放机制等弹性功能,以保证数据的成功传输。H100 GPU中实现了新一代的第四代NVLink,与NVIDIA A100 Tensor Core GPU中使用的上一代第三代NVLink相比,通信带宽提高了1.5倍。新的NVLink为多GPU IO和共享内存访问提供900 GB/sec的总带宽,是PCIe Gen 5带宽的7倍。第三代NVLink在A100 GPU中使用四个差分对(4个通道)在每个方向上创建一个链路,每个方向提供25 GB/sec的有效带宽;而第四代NVLink仅使用两个高速差分对在每个方向上形成一个链路,同样每个方向提供25 GB/sec的有效带宽。H100包含18个第四代NVLink链路,提供900 GB/sec的总带宽,而A100包含12个第三代NVLink链路,提供600 GB/sec的总带宽。

NVLink Network的引入。在第四代NVLink的基础上,H100还引入了新的NVLink Network互连,这是NVLink的可扩展版本,能够实现跨多个计算节点多达256个GPU之间的GPU到GPU通信。与所有GPU共享一个公共地址空间、请求直接使用GPU物理地址路由的常规NVLink不同,NVLink Network引入了一个新的网络地址空间,由H100中新的地址转换硬件支持,以将所有GPU的地址空间彼此隔离,并与网络地址空间隔离。这使得NVLink Network能够安全地扩展到更大数量的GPU。由于NVLink Network端点不共享一个公共内存地址空间,因此NVLink Network连接不会在整个系统上自动建立。相反,与InfiniBand等其他网络接口类似,用户软件应根据需要显式地在端点之间建立连接。

第三代NVSwitch

NVSwitch的演进。新的第三代NVSwitch技术包括位于节点内外以连接服务器、集群和数据中心环境中多个GPU的交换机。每个新的第三代NVSwitch在节点内部提供64个第四代NVLink链路端口,以加速多GPU连接。总交换机吞吐量从上一代的7.2 Tbits/sec增加到13.6 Tbits/sec。

硬件加速集合操作。新的第三代NVSwitch还通过多播和NVIDIA SHARP网络内归约,为集合操作提供硬件加速。加速的集合操作包括写广播(all_gather)、reduce_scatter和广播原子操作。与在A100上使用NCCL(NVIDIA Collective Communications Library)相比,In-fabric多播和归约为小块大小的集合操作提供了高达2倍的吞吐量增益,并显著降低了延迟。NVSwitch对集合操作的加速显著减少了SM在集合通信上的负载。

大规模网络构建。结合新的NVLINK Network技术和新的第三代NVSwitch,NVIDIA能够构建具有前所未有的通信带宽水平的大规模扩展NVLink Switch System网络。每个GPU节点暴露出节点中GPU所有NVLink带宽的2:1收敛级别。这些节点通过位于计算节点之外并连接多个节点的NVLink Switch模块中包含的第二级NVSwitch连接在一起。

系统能力。NVLink Switch System最多支持256个GPU。连接的节点能够提供57.6 TB/s的全对全带宽,并能提供惊人的一exaFLOP的FP8稀疏AI计算能力。图26比较了基于A100和H100的32节点、256 GPU的DGX SuperPOD。请注意,基于H100的SuperPOD可选地使用新的NVLink Switches来互连DGX节点。


图注(左):DGX A100 256 SuperPOD

图注(中):DGX H100 256 SuperPOD

图注(右):完全通过NVLink连接,巨大的对分带宽
图26. DGX A100与DGX H100 256节点NVIDIA SuperPOD比较。
图注:DGX H100 SuperPODs可扩展至256个GPU,使用基于第三代NVSwitch技术的新型NVLink Switch,通过NVLink Switch System完全连接。采用2:1收敛胖树拓扑的NVLink Network互连,例如在全对全交换中,使对分带宽惊人地增加了9倍,并且在allreduce吞吐量上比上一代InfiniBand系统增加了4.5倍。DGX H100 SuperPOD将提供NVLINK Switch System作为选项。

物理连接。交换机到交换机的最大电缆长度从5米增加到20米。现在支持由NVIDIA制造的OSFP(Octal Small Form Factor Pluggable)LinkX电缆。它们的特点是每个OSFP有四端口光收发器,以及8通道的100G PAM4信令。四端口OSFP收发器的创新使得单个1 RU、32笼的NVLink Switch中总共可以有128个NVLink端口,每个端口以25 GB/sec的速度传输数据。

PCIe Gen 5

带宽与连接性。H100集成了PCI Express Gen 5 x16通道接口,提供128 GB/sec的总带宽(每个方向64 GB/sec),而A100中包含的Gen 4 PCIe总带宽为64 GB/sec(每个方向32 GB/sec)。利用其PCIe Gen 5接口,H100可以与性能最高的x86 CPU和SmartNICs / DPUs(数据处理单元)接口。H100设计用于与NVIDIA BlueField-3 DPU实现最佳连接,以支持400 Gb/s以太网或NDR(Next Data Rate)400 Gb/s InfiniBand网络加速,用于安全的HPC和AI工作负载。

新功能支持。H100增加了对原生PCIe原子操作的支持,如32位和64位数据类型的原子CAS、原子交换和原子fetch add,加速了CPU和GPU之间的同步和原子操作。H100还支持单根输入/输出虚拟化(SR-IOV)。

安全增强和机密计算

安全需求背景。NVIDIA越来越多地将GPU销售到对安全敏感的市场。云服务提供商(CSP)、汽车制造商、国家实验室、医疗保健、金融以及许多其他行业和组织都要求高水平的安全性。每一代新的NVIDIA GPU都在不断提高安全功能。大量敏感数据每天都在被生成、存储和处理,面临着日益增长的监管和网络攻击业务风险。虽然有先进的加密技术用于保护静态存储和网络传输中的数据,但在保护正在处理或使用中的数据方面存在一个巨大的差距。新的机密计算技术通过保护使用中的数据和应用程序来解决这一差距,并为管理敏感和受监管数据的组织提供更高的安全性。

H100的安全特性。NVIDIA H100包含多项安全功能,以限制对GPU内容的访问,确保只有授权实体才能访问;提供安全启动和证明能力;并在系统运行时主动监控攻击。此外,专用的片上安全处理器、对多种类型和级别的加密的支持、硬件保护的内存区域、特权访问控制寄存器、片上传感器以及许多其他功能,为我们的客户及其数据提供安全的GPU处理。H100是全球首款具备机密计算能力的GPU。用户可以在访问H100前所未有的加速能力的同时,保护其数据和应用程序“使用中”的机密性和完整性。H100提供了一系列广泛的其他安全功能,以保护用户数据,防御硬件和软件攻击,并在虚拟化和MIG环境中更好地隔离和保护虚拟机。

H100安全功能的主要目标。NVIDIA H100 GPU全面安全功能的主要目标包括:
* 数据保护和隔离:防止未经授权的实体获取其他用户的数据,其中实体可以是用户、操作系统、虚拟机管理程序或GPU固件。
* 内容保护:防止未经授权的实体获取存储在GPU上或由GPU处理的受保护内容。
* 物理损坏保护:防止对GPU的物理损坏,无论是由恶意行为者还是意外造成的。

NVIDIA机密计算

机密计算的定义与背景。NVIDIA是机密计算联盟(C3)的成员。C3由国际上的供应商、学术机构、开源项目和软件开发者组成,合作开发旨在减少安全威胁并保护在公共云服务、本地数据中心以及边缘系统和设备上使用中的敏感数据和应用程序的倡议和技术。机密计算的正式定义是“通过在基于硬件的可信执行环境(TEE)中执行计算来保护使用中的数据”。该定义与数据在哪里使用无关,无论是在云中、最终用户设备中,还是介于两者之间。它也与哪个处理器保护数据或使用哪种保护技术无关。C3将TEE定义为“为三个关键属性——数据机密性、数据完整性和代码完整性——提供一定程度保证的环境”。

现有方案的不足与NVIDIA的解决方案。如今,数据通常在静止状态(存储中)和传输中(网络上)受到保护,但在使用中并未受到操作系统/虚拟机管理程序的保护。这种信任操作系统/虚拟机管理程序的要求给用户的数据和代码保护留下了巨大的差距。此外,在传统计算基础设施中,保护使用中数据和代码的能力有限。处理敏感数据(如个人身份信息(PII)、金融和健康数据)或需要满足数据本地化法规的组织,需要减轻在所有阶段针对其应用程序、模型和数据机密性和完整性的威胁。现有的机密计算解决方案是基于CPU的,对于像AI和HPC这样的计算密集型工作负载来说速度太慢。基于CPU的机密计算通常会降低系统性能,这可能会影响生产力或在延迟敏感的数据处理工作负载中不可行。

NVIDIA机密计算的能力。通过NVIDIA机密计算,这是NVIDIA Hopper架构中引入的一项新安全功能,H100成为世界上第一款能够保护使用中数据和代码机密性和完整性的GPU。H100将加速计算带入机密计算的世界,并将CPU的可信执行环境扩展到GPU。H100为许多过去因需要在使用中保护数据和代码,以及之前的机密计算解决方案性能或灵活性不足以满足许多工作负载而无法使用共享基础设施(云、托管、边缘)的用例打开了大门。

可信执行环境(TEE)的实现。NVIDIA机密计算创建了一个基于硬件的可信执行环境(TEE),可以保护和隔离在单个H100 GPU、一个节点内的多个H100 GPU或单个安全的多实例GPU(MIG)实例上运行的整个工作负载。可信执行环境(TEE)在GPU上的机密虚拟机与其在CPU中的对应部分之间建立一个安全通道。TEE提供两种操作模式:1. 整个GPU专门分配给单个VM(单个VM也可以同时分配多个GPU)。2. 一个NVIDIA H100 GPU被分区并使用MIG技术支持多个VM,实现多租户机密计算。GPU加速的应用程序可以在TEE内未经修改地运行,无需手动分区。

机密计算的优势。用户可以将NVIDIA丰富的AI和HPC软件组合和强大功能与NVIDIA机密计算提供的硬件信任根的安全性相结合,在最低的GPU架构级别提供安全和数据保护。用户可以在共享或远程基础设施上运行和验证应用程序,并确保任何未经授权的实体,包括虚拟机管理程序、主机操作系统、系统管理员、基础设施所有者或任何具有物理访问权限的人,都无法查看或修改其在TEE中使用中的应用程序代码和数据。


图28. 适用于不同用例的机密计算。

机密联邦学习。Hopper架构的机密计算能力进一步放大和加速了像联邦学习这样的协作多方计算用例的安全性。联邦学习使多个组织能够共同训练或评估AI模型,而无需共享每个组织的专有数据集。使用H100的机密联邦学习确保数据和AI模型在每个参与站点都免受外部或内部威胁的未经授权访问,并且每个站点都可以了解和证明其对等方运行的软件。这增加了安全协作的信心,推动了医学研究的进步,加速了药物开发,减轻了保险和金融欺诈,以及许多其他应用——同时保持了安全性、隐私性和法规遵从性。


图29. 机密联邦学习。

尽管提供GPU中的机密计算能力涉及许多组件,但其中一个更重要的功能是安全和可度量启动,如下所述。

成功度量

安全启动与可度量启动。虽然NVIDIA Ampere GPU架构包含了安全启动技术,但它不支持可度量启动,这是机密计算合规性所必需的。我们将简要讨论H100中实现的安全和可度量启动的概念和组件。安全启动是一套硬件和软件系统,确保GPU从一个已知的安全状态启动,只允许运行由NVIDIA编写和审查的经过身份验证的固件和微码。可度量启动是收集、安全存储和报告确定GPU安全状态的启动过程特征的过程。证明和验证是将测量值与参考值进行比较,以确保设备处于预期的安全状态的方法。NVIDIA提供证明者、参考值和认可签名。

部署工作流。部署工作流利用通过可度量启动提供的测量值,与NVIDIA或服务提供商提供的参考值进行比较,以确定系统是否处于准备就绪和安全的状态,可以开始处理客户数据。一旦系统得到验证,客户就可以像在非机密计算环境中运行相同应用程序一样启动应用程序。

NVIDIA机密计算实现概述

VM隔离。如图30所示,左侧NVIDIA CC关闭时显示了传统的PC架构,其中主机操作系统和虚拟机管理程序可以完全访问GPU等设备。右侧NVIDIA CC开启时显示了VM与其他元素的完全隔离。


图30. NVIDIA CC关闭 vs CC开启的VM隔离。

硬件安全基础。完整的VM TEE和GPU TEE隔离以形成机密计算环境,是通过强大的基于硬件的安全性提供的,包括三个关键要素,部分已在前面解释过:
* 片上信任根(RoT) - 在操作系统与GPU通信之前,GPU使用RoT确保设备上运行的固件是真实的,并且没有被设备所有者(CSP等)篡改。
* 设备证明 - 允许用户确保他们正在与启用了机密计算的真实NVIDIA GPU通信,并且GPU的安全状态与已知的、可信的安全状态(包括固件和硬件配置)相匹配。
* AES-GCM 256 – CPU和H100 GPU之间的数据传输使用AES256-GCM的硬件实现以PCIe线速进行加密/解密。这为通过总线传输的数据提供了机密性和完整性,密钥仅对CPU和GPU TEE可用。该加密实现将通过FIPS 140-3二级认证。

易用性。请注意,使用NVIDIA机密计算技术不需要更改任何CUDA应用程序代码。

H100视频/IO特性

NVDEC for DL

视频解码能力的提升。与A100相比,H100显著提高了视频解码能力。在深度学习平台中,输入视频以任何行业标准(如H264 / HEVC / VP9等)进行压缩。在深度学习平台中实现高端到端吞吐量的一个重要挑战是能够平衡视频解码性能与训练和推理性能。否则,GPU的全部深度学习性能将无法得到利用。H100通过支持八(8)个NVDEC(NVIDIA DECode)单元,与A100中的五(5)个NVDEC单元相比,实现了显著的解码吞吐量提升。这也确保了在MIG操作中,每个MIG分区至少可以获得一个NVDEC单元。

表5. A100与H100视频解码(流数量)比较:

表6. H100硬件解码支持

NVJPG (JPEG) 解码

JPEG解码瓶颈与H100解决方案。在实现图像深度学习训练和推理的高吞吐量方面,一个根本瓶颈是图像的JPEG解码过程(从压缩到原始)。由于处理图像位的串行操作,CPU和GPU对于JPEG解码效率不高。此外,如果JPEG解码在CPU中完成,PCIe会成为另一个瓶颈。H100包含八个单核NVJPG硬件引擎来加速JPEG解码,而A100中为一个五核引擎。

H100 NVJPG引擎亮点
* NVJPG支持YUV420、YUV422、YUV444、YUV400和RGBA格式。
* 改进的JPEG架构:H100增加了8个单核引擎,而不是A100的5核引擎。这大大简化了软件使用模型,因为JPEG图像可以独立分配到单个引擎中,而不是收集成五张图像的批次。此外,它还提高了同一批次中图像分辨率异构情况下的吞吐量。
* 在MIG操作中,每个MIG分区至少可以获得一个NVJPG引擎。
* JPEG吞吐量比A100大幅增加。
* 以上JPEG吞吐量假设压缩比为10:1。
** 以上吞吐量假设为1080p分辨率。在像224x224这样较小的分辨率下,JPEG图像吞吐量可能比上图所示低约30-40%。

表7. NVJPG解码性能

DALI库。NVIDIA提供了一个数据加载库(DALI),通过自动调用NVDEC / NVJPG来管理视频/图像管道的硬件加速。它为AI开发者提供了一种在深度学习工作负载中使用视频/图像硬件引擎的简便方法。它还允许灵活的图来创建自定义的视频/图像管道。DALI的详细描述和用户指南可在 https://docs.nvidia.com/deeplearning/dali/user-guide/docs/ 获取。DALI库可以从 https://github.com/NVIDIA/DALI 下载。

A4 实验环境

模型架构:
- 大型语言模型 (LLM): Transformer架构,如BERT, GPT-3, MT-NLG,参数量从160亿到数万亿不等。
- 推荐系统: DLRM (Deep Learning Recommendation Model)。
- 计算机视觉: Mask R-CNN (MRCNN)。
- 科学计算: 气候建模、晶格量子色动力学 (LQCD)、3D-FFT、基因组学 (Smith-Waterman)。

硬件配置:
- GPU:
- NVIDIA H100 (Hopper架构): 采用TSMC 4N工艺,800亿晶体管。
- SXM5版本: 132个SM, 16896个FP32 CUDA核心, 528个第四代Tensor Cores, 80GB HBM3内存 (带宽 > 3 TB/s), 50MB L2缓存。
- PCIe Gen 5版本: 114个SM, 14592个FP32 CUDA核心, 456个第四代Tensor Cores, 80GB HBM2e内存 (带宽 > 2 TB/s), 50MB L2缓存。
- 对比GPU: NVIDIA A100 (Ampere架构)。
- 系统与互联:
- NVIDIA DGX H100系统: 8 x H100 SXM5 GPUs, 4个第三代NVSwitch, 第四代NVLink互联 (900 GB/s GPU间总带宽)。
- NVIDIA DGX SuperPOD: 32个DGX H100系统 (共256个H100 GPU),通过第二级NVLink Switch System互联,提供高达57.6 TB/s的全对全带宽。
- 网络: 8 x NVIDIA ConnectX-7 (400Gb/s InfiniBand/Ethernet), 2 x BlueField-3 DPU。
- CPU: 未明确指定型号,但提及H100通过PCIe Gen 5与性能最高的x86 CPU连接,以及与NVIDIA Grace CPU组成的Grace Hopper Superchip。

软件配置:
- 平台: NVIDIA CUDA平台。
- 软件开发工具包 (SDK): NVIDIA HPC SDK。
- 核心库: NVIDIA Collective Communications Library (NCCL), cuDNN, DALI (数据加载库), Clara Parabricks (基因组学框架)。
- 编译器: NVCC, NVC++, NVFortran。

A4 实验结果

A5 结论

NVIDIA H100 Tensor Core GPU代表了加速计算领域的一次重大飞跃,旨在应对AI、HPC和数据分析领域呈指数级增长的复杂性和规模。基于创新的Hopper架构和先进的TSMC 4N工艺,H100在性能、可编程性和安全性方面均实现了代际突破。

核心结论:
1. 数量级的性能提升: H100通过第四代Tensor Core、FP8数据格式支持以及全新的Transformer引擎,为AI工作负载(特别是大型Transformer模型)提供了高达30倍的性能提升。同时,其在HPC应用(如动态规划)和传统浮点计算方面也实现了数倍的性能增长。
2. 突破可扩展性瓶颈: 通过第四代NVLink、第三代NVSwitch和创新的NVLink Switch System,H100能够构建前所未有的GPU集群规模(高达256个GPU),为训练万亿参数模型和解决百亿亿次级科学问题提供了强大的通信基础。
3. 提升编程效率与GPU利用率: H100通过引入线程块集群、分布式共享内存、Tensor Memory Accelerator (TMA)和异步事务屏障等新特性,使CUDA编程模型更加灵活和强大。这些特性使得开发者能够更精细地控制数据局部性,并实现计算与数据移动的完全重叠,从而最大化GPU利用率。
4. 开创数据中心安全新纪元: H100是全球首款原生支持机密计算的GPU,通过硬件级别的可信执行环境(TEE),在数据使用过程中保护数据和代码的机密性与完整性。结合增强的第二代安全MIG,H100为多租户云环境和敏感数据处理(如联邦学习)提供了前所未有的安全保障。

未来展望: H100不仅是当前最强大工作负载的加速器,更是未来计算范式的基石。它将为NVIDIA Omniverse中的复杂数字孪生、地球-2气候预测超级计算机等宏大项目提供动力,并推动AI在科学发现、药物研发、自动驾驶等众多领域的广泛应用和创新。H100及其配套的DGX和SuperPOD系统,为企业和研究机构构建了一个通向未来AI和HPC的完整、可扩展且安全的平台。

A6 附录

附录A - NVIDIA DGX - 数据中心AI的基础构建模块

DGX在AI领域的地位。人工智能(AI)现已成为解决棘手业务挑战的首选方法。无论是改善客户服务、优化供应链、提取商业智能,还是在几乎所有行业设计尖端产品和服务,AI都为组织提供了实现创新的机制。作为AI基础设施的先驱,NVIDIA DGX系统提供了最强大、最完整的AI平台,以将这些重要思想付诸实践。

NVIDIA DGX H100 - 全球最完整的AI平台

DGX H100的定位与能力。NVIDIA DGX H100驱动业务创新和优化。作为NVIDIA传奇DGX系统的最新迭代和NVIDIA DGX SuperPOD的基础,DGX H100是一个AI powerhouse,配备了突破性的NVIDIA H100 Tensor Core GPU。该系统专为最大化AI吞吐量的单一目的而设计,为企业提供了一个高度精炼、系统化和可扩展的平台,帮助他们在自然语言处理、推荐系统、数据分析等领域取得突破。DGX H100可在本地部署,并可通过多种访问和部署选项获得,为企业解决AI最大挑战提供了所需性能。

DGX H100概述

DGX H100的系统构成。NVIDIA DGX H100是一个用于训练、推理和分析的通用高性能AI系统。DGX H100具备云原生能力,配备Bluefield-3、NDR InfiniBand和第二代MIG技术。单个DGX H100系统可提供无与伦比的32 petaFLOPS性能。通过将多个DGX H100系统连接成称为DGX PODs甚至DGX SuperPODs的集群,可以轻松扩展此性能。每个DGX H100系统包括:
* 8 x H100 Tensor Core GPUs
* 第四代Tensor Cores
* 第四代NVLink
* 第三代NVSwitch (x4)
* 8x ConnectX-7 (400Gb/s InfiniBand / Ethernet)
* 2x Bluefield-3 DPUs
* 支持PCIe Gen5

无与伦比的数据中心可扩展性

DGX H100作为扩展基础。NVIDIA DGX H100是大型AI集群(如NVIDIA DGX SuperPOD,即可扩展AI基础设施的企业蓝图)的基础构建模块。DGX H100中的八个NVIDIA H100 GPU使用新的高性能第四代NVLink技术,通过四个第三代NVSwitch互连。第四代NVLink技术提供的通信带宽是上一代的1.5倍,比PCIe Gen5快7倍。它提供高达7.2 TB/sec的总GPU到GPU吞吐量,比上一代DGX A100提高了近1.5倍。加上附带的八个NVIDIA ConnectX-7 InfiniBand / Ethernet适配器,每个运行在400 Gb/sec,DGX H100系统为大规模AI工作负载提供了强大的高速网络。

BlueField-3 DPU的角色。每个DGX H100还包括两个NVIDIA BlueField-3 DPU(数据处理单元),用于智能、硬件加速的存储、安全和网络管理功能。BlueField-3 DPU将传统计算环境转变为安全且加速的虚拟私有云,允许组织在安全的多租户环境中运行应用程序工作负载。BlueField-3将数据中心基础设施与业务应用程序解耦,增强了数据中心安全性,简化了操作,并降低了总拥有成本。BlueField-3采用NVIDIA的网络内计算技术,支持下一代超级计算平台,提供最佳的裸金属性能和对多节点租户隔离的原生支持。

大规模扩展能力。大规模GPU加速计算、最先进的网络硬件和软件优化的结合,意味着NVIDIA DGX H100可以扩展到数百或数千个节点,以应对下一代AI应用的最大挑战。

NVIDIA DGX H100系统规格

表8. NVIDIA DGX H100系统规格

附录B - NVIDIA CUDA平台更新

CUDA平台概述。NVIDIA CUDA是一个全面、高效、高性能的加速计算平台。它在从系统软件到特定应用库和框架的所有层面,利用GPU、CPU、DPU和网络内计算来加速终端用户应用(见图31)。其成熟且用户友好的工具链、开发者工具和文档为加速异构应用提供了最佳的开发者体验。


图31. NVIDIA CUDA平台及其生态系统。

高性能库和框架

CUDA核心库。CUDA库最大化了通用数学(CUDA Math Library)、并行算法(CUB和Thrust)、线性代数(cuBLAS)、稠密和稀疏线性求解器(cuSOLVER和cuSPARSE)、FFT(cuFFT)、随机数生成(cuRAND)、张量操作(cuTENSOR)、图像和信号处理(NPP)、JPEG解码(nvJPEG)以及GPU管理(NVML)的性能。cuNumeric通过Legate和Legion运行时,无需任何代码修改,即可透明地将NumPy程序加速并分发到任何规模的机器上。libcu++提供了异构同步和数据移动原语,以支持高并发、异构、符合ISO标准的C++应用。

通信与I/O库。此外,CUDA平台通信库支持基于标准的可扩展系统编程。HPC-X是一个CUDA感知的MPI库,支持GPUDirect,可使用RDMA直接发送和接收GPU缓冲区。NVIDIA Collective Communications Library (NCCL)实现了高度优化的多节点集体通信原语。NVSHMEM基于OpenSHMEM,为主机和设备线程提供异构多节点通信原语。cuFile和MAGNUM IO通过GPUDirect Storage为异构应用提供高性能文件I/O。

领域专用库与SDK。一套广泛的领域专用库和框架进一步加速了各种应用领域的主要算法,例如,深度神经网络(cuDNN)、用于模拟和隐式非结构化方法的线性求解器(AmgX)、量子计算(cuQuantum)、数据科学和机器学习(RAPIDS)、机器学习的数据加载和预处理(DALI),以及实时3D模拟和设计协作(Omniverse)等。超过150个软件开发工具包利用这些库,帮助开发者在众多应用领域变得高效,包括高性能计算(NVIDIA HPC SDK)、AI、机器学习、深度学习和数据科学、基因组学(NVIDIA CLARA)、智慧城市(NVIDIA Metropolis)、自动驾驶(NVIDIA Drive SDKs)、电信(NVIDIA Aerial SDK)、机器人技术(NVIDIA Isaac SDK)、网络安全(NVIDIA Morpheus SDK)、计算机视觉等等。

系统软件

系统软件组件。NVIDIA CUDA平台还提供灵活的系统软件组件,帮助用户高效地部署、管理和优化大型异构系统。产品范围从设备驱动程序(CUDA驱动)、设备管理软件(NVML、nvidia-smi、DCGM和Unified Fabric Manager)、用于异构网络和文件I/O的GPUDirect,到容器感知作业调度系统和操作系统(DGX OS)。

文档和培训

学习资源。庞大的CUDA软件生态系统辅以我们编程模型(如C++并行算法)、库(如libcu++)、框架(如RAPIDS AI)和SDK(如HPC SDK)的优秀文档。NVIDIA深度学习学院(DLI)提供自定进度和现场培训(例如在Supercomputing和国际超级计算大会等会议上),使个人能够提升在AI、加速计算、加速数据科学、图形和模拟等领域的知识。DLI培训并认证合格的教育者为DLI大使,在研究机构和HPC中心,使他们能够教授和根据自身需求调整DLI内容。除了我们的官方文档,NVIDIA还与不同社区和HPC站点合作,提供GPU Hackathon和Bootcamp计划。它将领域科学家和研究软件工程师(RSE)团队与来自NVIDIA和HPC社区的GPU导师配对,传授有效使用现代异构计算系统所需的软件开发、并行计算和优化技能。每年,NVIDIA都会举办其GPU技术大会(GTC),重点是向开发者介绍最新的NVIDIA平台和技术。演讲内容涵盖NVIDIA编程模型、硬件细节以及加速计算在广泛领域的应用。所有这些演讲都被录制并可在GTC on demand上观看。

语言和编译器

编译器堆栈。CUDA平台通过NVIDIA的NVVM IR和libNVVM,为生成高度优化的设备二进制文件提供了一个统一而灵活的编译器堆栈。NVVM IR是基于LLVM 7的编译器中间表示(IR),为前端编译器提供了生成GPU计算内核的目标。libNVVM是一个用于将NVVM IR编译和优化为PTX(NVIDIA GPU的虚拟ISA)的库。所有NVIDIA计算编译器都使用libNVVM来面向NVIDIA GPU(图32),它使用户和框架能够将其选择的编程语言带到CUDA平台,并具有与CUDA C++本身相同的代码生成质量和优化。


图32. 高级语言前端。
图注:前端使用libNVVM将NVVM IR程序编译为PTX并在GPU上运行。

PTX与NVRTC。PTX是NVIDIA GPU的虚拟ISA,是一个由第三方生产者面向以在我们的目标架构上高效运行的公共ISA。PTX还具有前向兼容的优点,并且可以在离线或运行时进行汇编。在许多应用中,要生成的GPU计算内核取决于程序输入。虽然这些应用可以生成NVVM IR,但NVIDIA运行时编译器通过允许它们生成熟悉的CUDA C++,显著提高了这些应用及其用户的生产力。NVRTC在运行时使用libNVVM将CUDA C++编译为PTX,或使用嵌入式PTX汇编器编译为本地GPU二进制代码。这使得应用程序(例如Python程序)能够为用户输入的程序动态生成内核,以及(例如C++程序)能够根据程序输入在运行时特化计算内核。

NVIDIA HPC SDK。NVIDIA HPC SDK是一套用于异构系统的工具链。NVCC是一个CUDA C++编译器,提供了一种分离编译模型,将GPU编译与外部主机编译器(如GCC)配对(图33:左)。NVIDIA HPC编译器——NVC、NVC++和NVFortran——提供了一个统一的异构编译模型(图33:右)。


图33. NVCC分离编译模型和NVC++统一编译模型。

统一编译模型的优势。统一编译器在为不同目标拆分编译过程之前只解析和优化程序一次。该模型支持nvcc中不可用的某些功能。例如,使用nvcc,CUDA C++设备代码需要__device__注释(图34,左)。NVC++编译器不需要这些注释(图34,右),如果程序从特定目标使用一个函数并且其定义是可达的,编译器会尝试编译它。统一编译简化了开发,使GPU编程对初学者更易于访问,同时使经验丰富的开发者更具生产力。它还增加了主机和设备目标之间的代码重用,简化了加速GPU应用的过程。


图34. 统一工具链支持执行空间推断。

附录C - 使用DPX指令加速基因组学

H100的广泛加速能力。NVIDIA H100可以比先前的GPU和CPU以不同的X因子加速多种不同类型的应用和算法。在本节中,我们重点介绍H100在基因组学领域提供的显著加速。在过去几年中,随着传染病的兴起和全球大流行的危险,基因组和蛋白质分析对人类从未如此重要。

DPX指令在基因组学中的应用。H100引入了新的DPX指令,这些是新的专用硬件指令,用于加速动态规划算法,如用于DNA基因测序的Smith-Waterman算法,以及用于蛋白质分类和折叠。与NVIDIA Ampere A100 GPU相比,H100为Smith-Waterman提供了高达7倍的加速,从而大大缩短了疾病诊断、病毒突变研究和疫苗开发的求解时间。下面给出了基因组学和基因测序的简短教程。

基因组学领域的发展。基因组学领域正在呈指数级增长,改变了医疗保健、农业和生命科学行业,并且是我们对抗SARS-CoV-2和COVID-19的最锐利武器之一。对人类基因组进行测序——无论是全部还是选定部分——对于我们理解其工作原理至关重要,这使我们能够识别可能导致疾病、提供保护并成为治疗靶点的遗传变异。随着组织利用基因组来理解疾病、发现药物和增强患者护理,数据分析和管理正成为提取基因组价值的主要工具。

计算挑战与NVIDIA Clara Parabricks。自2005年下一代测序(NGS)引入以来,该行业经历了数据爆炸,并围绕人类基因组建立了新产业,从解决家族史到临床护理。基因组学受益于先进的计算系统,这些系统可以加速将原始仪器数据转化为生物学见解所需的计算密集型步骤。单个个体的基因组原始数据大小约为100 GB。经过分析后,总数据足迹增长到超过225 GB,这利用了深度学习和自然语言处理等复杂算法和应用。用GPU加速数学模型为传统基因组学分析(如测序读段处理和变异识别)带来了明显的好处,但它也有可能彻底改变我们对特定基因组变异如何影响疾病和健康的理解。NVIDIA Clara™ Parabricks®是用于下一代测序数据的加速计算框架,支持DNA和RNA应用的端到端数据分析工作流。Clara Parabricks在NVIDIA GPU平台套件上运行,提供超过50种加速工具,包括GPU加速的Burrows-Wheeler Aligner (BWA-MEM)、Picard和Samtools,以及一套注释、过滤和组合多种变异调用格式(VCF)的实用程序。整个工作流中加速工具的组合意味着结果可以在几分钟内生成,而不是几小时或几天。


图35. NVIDIA CLARA Parabricks加速框架。

基因测序的计算问题。基因组是生物体的完整脱氧核糖核酸(DNA)集合,DNA是一种化学化合物,包含发育和指导每个生物体活动所需的遗传指令。DNA分子由两条扭曲配对的链组成。每条链由四种化学单位组成,称为核苷酸碱基。碱基是腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)和胞嘧啶(C)。相对链上的碱基特定配对;A总是与T配对,C总是与G配-对。人类基因组包含约30亿个这样的碱基对,位于我们所有细胞核内的23对染色体中。对基因组进行测序意味着确定DNA片段中碱基对的确切顺序。个体的DNA测序过程始于将DNA分裂成互补对的化学过程,将DNA链切成特定大小的块(可能长100到2000个碱基对),并通过测序机对这些小块(称为读段)进行测序,生成计算机可读的碱基对代码序列。然后,通过在参考基因组中搜索序列的位置,或通过De Novo方法(通过寻找碱基的重叠模式来组装测序块,而不是依赖参考基因组序列)重新组装这些测序块。从计算的角度来看,问题归结为在数十亿个碱基对长的参考基因组中搜索和匹配一组“读段”,或通过比较数百万个读段以寻找重叠并将它们按正确顺序对齐的模式匹配算法从头组装基因组。在此过程中,算法可能需要插入、编辑或删除序列以解决不匹配,并指定可能遇到的各种类型不匹配的成本。因此,用于模式匹配的计算硬件架构需要灵活以适应这些要求,并支持用于基因组学中其他问题(如蛋白质测序)的其他类似算法。

Smith-Waterman算法与DPX指令。用于DNA测序的Smith-Waterman算法在NVIDIA CLARA Parabricks加速计算框架的GPU加速BWA-MEM模块中使用。该算法基本上通过比较两串碱基读段创建一个评分矩阵,然后根据矩阵中分数的追溯来识别两个字符串的最佳匹配模式。


图36. 用于基因组测序的Smith-Waterman算法。
在上面的插图中,矩阵的每个单元更新需要5个基本计算:
1. 匹配时从对角线元素加上一个值x(此图中x=3)。
2. 不匹配时从对角线元素减去一个值x。
3. 垂直元素不匹配时减去一个值y(此图中y=2)。
4. 水平元素不匹配时减去一个值z(此图中z=2)。
5. 找到上述四个操作的最大值(如果结果为负,则将单元格置零)。
H100中的新DPX指令经过优化,可加速上述计算集和其他类似算法。